#ifndef SNAKE_PROCESS_H
#define SNAKE_PROCESS_H

#include <vector>
#include "Process\Process.h"
#include "Math\Vector2.h"
class CGraphicsManager;
class CFontManager;

class CSnakeProcess: public CProcess
{
	public:
		CSnakeProcess			(void): m_x(0), m_y(0), m_Dir(DOWN), m_speed(5), m_time(0), m_GameOver(false), m_Colisionar(0), m_Menjar(0),
								m_Puntuacio(0){Init();}
		~CSnakeProcess			(void);
		void	Update			(float l_DeltaTime);
		void	RenderScene		(CGraphicsManager *l_GraphicsManager,float l_DeltaTime);
		void	RenderScene2D	(CGraphicsManager *l_GraphicsManager, CFontManager *l_FontManager,float l_DeltaTime);
		void	Init			();
		void	DeInit			();
	private:
		float	m_x,m_y;
		float	m_time;
		bool m_GameOver;
		int m_speed;
		int m_Puntuacio;
		enum CurrentDirection{DOWN=0,UP,LEFT,RIGHT};
		CurrentDirection m_Dir;
		std::vector<Vect2f> m_Colisionar;
		std::vector<Vect2f> m_Menjar;
};

#endif